package cn.ailanyin.home.common.utils;

import cn.hutool.core.util.HexUtil;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.symmetric.SymmetricCrypto;

/**
 * sm4 util
 *
 * @author ailanyin
 * @date 2024/04/13
 */
public class Sm4Util {

    private static final String KEY = "tGBhgFJZh4eXHtWk";
    /**
     * 创建 SM4 加密对象
     */
    private static final SymmetricCrypto SM4 = SmUtil.sm4(KEY.getBytes());

    public static String encrypt(String data) {
        // 加密数据
        byte[] encryptBytes = SM4.encrypt(data);
        // 将加密后的数据转换为十六进制字符串
        return HexUtil.encodeHexStr(encryptBytes);
    }

    public static String decrypt(String data) {
        // 解密数据
        byte[] decryptBytes = SM4.decrypt(data);
        // 将解密后的数据转换为字符串
        return new String(decryptBytes);
    }

}
